
        <html>
			<head>
			     <title>祸起萧墙：由播放器引爆的全国性大规模挂马分析 - 360安全卫士</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/6762">http://drops.wooyun.org/papers/6762</a></h1>
				
      <p>
        <h1>0x00 事件起因</h1>

<hr />

<p>从5月底开始，360云安全系统监测到一个名为“中国插件联盟”的下载者木马感染量暴涨。令人匪夷所思的是，该木马的下载通道竟然是多款用户量上千万甚至过亿的播放器客户端。</p>

<p>起初，我们怀疑这些播放器的升级文件被木马进行了网络劫持。通过对木马下载重灾区搜狐影音的分析，我们发现搜狐影音对网络下载的运行代码做了完整性校验，但并没有对安全性做校验，比如签名信息等，确实可以被劫持升级种木马。不过从数据分析显示，这一波利用播放器下载的木马分布在全国不同地域、不同运营商，基本可以排除网络劫持的可能性。</p>

<p>真正的问题出在哪里呢？我们在网友反馈中找到“中国插件联盟”的受害者，联系受害者在真实环境中查找线索，力图从源头上遏制该木马的传播，而不仅仅是查杀掉木马。对受害用户调查显示，中招电脑上的搜狐影音通过官方渠道安装，本身没有捆绑木马；在此次中招前大约一个月时间内，电脑也没有执行过可疑程序。那么最大的可能性就是，搜狐影音被第三方挂马了！</p>

<p>经过重点监测和测试验证，我们发现在搜狐影音客户端展示的一个私服广告页面，带有IE远程代码执行漏洞（CVE-2014-6332）的挂马代码，可以利用搜狐影音去执行木马代码。</p>

<!--more-->

<p>进一步调查证明，中招电脑绝大多数为XP系统，少数是没有打补丁的Win7、Win8系统；搜狐影音的挂马则来自第三方广告联盟，这也是有多款播放器成为挂马通道的重要原因。</p>

<p>由于杀毒软件对浏览器进程防护比较严密，即使漏洞被触发，一般也能保证挂马攻击不会逃逸。但对于播放器等可以加载网页广告的其他客户端，则成为众多杀软的防护盲区。挂马攻击通过客户端广告触发，用户只要启动播放器就可能中招。</p>

<p>由于播放器挂马异常隐蔽且行踪不定，受影响播放器的用户量又非常庞大，为此360安全卫士快速升级增加了对播放器等客户端的防挂马支持，以应对流行软件引入第三方内容带来的安全隐患。从6月1日至6月25日，360对播放器挂马的拦截量累计已达到3537406次，这也是今年以来国内最大规模的木马攻击事件。</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608060596121.png" alt="enter image description here" /></p>

<p>搜狐影音执行木马脚本</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608060592808.png" alt="enter image description here" /></p>

<p>图：360拦截播放器挂马</p>

<h1>0x01 攻击原理</h1>

<hr />

<p>此次播放器挂马攻击，利用的是2014年公开的IE神洞CVE-2014-6332，漏洞起因是VBScript虚拟机中的一个整型溢出，具体触发原理在此略过，网上已有很多详细分析。使用IE内核做页面展示的软件，如果调用到了VBScript，都可能触发这个漏洞。另外由于该漏洞是在XP停服之后公开的，XP系统将永久受到此漏洞影响。</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608060647297.png" alt="enter image description here" /></p>

<p>攻击原理图</p>

<h1>0x02 案例分析</h1>

<hr />

<p>我们分析了搜狐影音被攻击的过程，国内还有一些知名软件存在同样问题，搜狐影音则是第一波大规模攻击时木马利用的客户端。 首先，搜狐影音在其内部加入了WebBrowser的支持，使用的内核是系统的IE内核，通过这个内核来展示页面内容和广告：</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608060666508.png" alt="enter image description here" /></p>

<p>搜狐影音的主界面以及展示的广告</p>

<p>系统的IE内核支持对VBScript的解析，并调用到了VB虚拟机，如果通过WebBrowser解析的页面中存在vbs脚本，脚本就会交给VB虚拟机执行。</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062607322960883image00511.png" alt="enter image description here" /></p>

<p>搜狐影音客户端页面内展示的广告，有一部分来自广告联盟和各种营销平台：</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608060755890.png" alt="enter image description here" /></p>

<p>分析发现在一个被展示的私服广告页面中，被插入了一个恶意的iframe标签，标签内容带有一段vbs脚本：</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608060853466.png" alt="enter image description here" /></p>

<p>通过对脚本进行解密，发现其中包含了6332漏洞利用代码，这段代码是由网上公开的一段poc改造而来。</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608060844083.png" alt="enter image description here" /></p>

<p>最终，成功利用SHRes执行攻击脚本，通过cmd写入一个vbs脚本执行：</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608060847491.png" alt="enter image description here" /></p>

<p>在对攻击代码的分析中，我们发现至少包含了这两种攻击脚本：</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608060882154.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608060931003.png" alt="enter image description here" /></p>

<h1>0x03 PayLoad分析</h1>

<hr />

<p>脚本执行之后，会从指定url下载一个可执行文件执行，下载的这个可执行文件是一个叫“中国插件联盟”的下载者。它会继续下载一个下载者、一个远控木马和大量安装包到本地，新下载的下载者继续下载安装包，形成连环静默推广之势（可怜的用户电脑呀），被推广的软件包括瑞星、色彩看看，语音朗读小说阅读器，61一键启动，护眼神器，武汉网知力，美图浏览，天天9块9（有二次推广）等。</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608060981255.png" alt="enter image description here" /></p>

<p>图：中招电脑惨不忍睹</p>

<p>远控木马则通过一系列手法隐藏自身，同时操作注册表写入服务，使远控木马开机自启动。</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061060887.png" alt="enter image description here" /></p>

<p>图：播放器挂马行为链</p>

<h1>0x04 “中国插件联盟”真凶调查</h1>

<hr />

<p>通过对“中国插件联盟”木马服务器的追踪调查，初步判断其作者是网名为yesimck的黑产人员，该作者QQ签名为“华越网络 正式上线 无限收安装量 www.vooyee.com”。</p>

<p>追踪线索如下：</p>

<p>域名注册信息：ichajianlianmeng.com</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061044378.png" alt="enter image description here" /></p>

<p>木马服务器信息：</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061157151.png" alt="enter image description here" /></p>

<p>作者网名：yesimck（网络资料显示其位于重庆万州，重庆中意职业技术学校）</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061193053.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061251976.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061213062.png" alt="enter image description here" /></p>

<p>所在地区和域名注册信息相符：</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061382716.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061367888.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061382135.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061454815.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061467060.png" alt="enter image description here" /></p>

<p>种迹象显示，yesimck是一名专门从事利用木马推广软件的黑产人员，其网络信息与“中国插件联盟”下载者的服务器和域名信息吻合。</p>

<h1>0x05 解决方案</h1>

<hr />

<p>对网民来说，Win7、Win8用户应安装补丁，切莫被“打补丁会拖慢电脑”的谣言误导。由于微软为已知漏洞提供了补丁，普通网民只要及时修复漏洞就能防范挂马攻击；XP用户可以选择升级系统，或使用具备播放器挂马防护能力的安全软件。在国内安全软件中，360已经全面支持浏览器、播放器等多类型客户端的挂马防护。</p>

<p>对软件厂商来说，首先应加强对广告的审核，避免外链其它未知内容，防止广告被掺杂恶意代码。另一个不容忽视的问题是，厂商应严格规范渠道行为，避免成为恶意推广的幕后金主。针对已经发现的恶意渠道，应及时采用法律手段进行严厉打击，否则软件厂商本身就成为了滋生流氓推广的温床。</p>

<h1>0x06 数据统计</h1>

<hr />

<p>此次播放器挂马攻击从5月30日开始出现，5月31日进入活跃期。以下是本月360对播放器挂马（yesimck）的拦截量统计，单日最高拦截量达到70万次：</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061464717.png" alt="enter image description here" /></p>

<p>通过对拦截数据分析，这一波攻击属于间歇性爆发，很可能是攻击者在有意控制着木马的传播，以避免其过快暴露。以6月24日拦截数据为例，该木马只是在下午集中出现，其它时段相对寂静。</p>

<p><img src="http://static.wooyun.org//drops/20150626/2015062608061583779.png" alt="enter image description here" /></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          